package com.ccys.common.constants;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.*;

/**
    * @description Core_App.BL.CoreAppConstants
    * @date     2024/1/25
    * @author   cloud fly
    */
@Slf4j
@Component
public class CoreAppConstants {


    public static final Integer IS_BOOKING_QUEUE_ENABLED = 0;
    public static String APP_URL = "http://whitecoat";
       // request header
       public static String HEADER_TIMEZONE = "timezone";
       public static String PAID_MEDICATION = "Paid";
       // singapore for now 
       public static String DEFAULT_TIMEZONE = "+08:00";
       public static String GMT_TIMEZONE = "+00:00";

       public static String PREFIX_IMAGE_BASE64 = "data:image/png;base64,";
       public static String PREFIX_IMAGE_BASE64_JPG = "data:image/jpg;base64,";
       public static String PREFIX_IMAGE_BASE64_JPEG = "data:image/jpeg;base64,";
    //service_type 0=GP;8 = Think well ;2 = Mental wellness;3 = Pead
     public static Integer[] SERVICE_TYPE = {0,2,3,8};

       public static  List<String> IMG_EXTENSION = new ArrayList<String>() {{
           add(".jpg");
           add(".png");
           add(".bmp");
           add(".gif");
           add(".jpeg");
           add(".tiff");
       }};

       public static float PRICE_OFFICE_HOUR = 25;
       public static float PRICE_AFTER_OFFICE_HOUR = 50;
       public static final String COUNTRY_SINGAPORE_ID = "203";
       public static final String DEFAULT_COUNTRY_ID = COUNTRY_SINGAPORE_ID;

       public static final String COUNTRY_INDONESIA_ID = "106";
       public static final String COUNTRY_MALAYSIA_ID = "136";
       public static final String COUNTRY_VIETNAM_ID = "245";
       public static final String COUNTRY_BRUNEI = "37";
       public static final String CAMBODIA_ID = "41";

       public static final int TEXT_BASED_CONSULTATION_TYPE = 6;

       public static final String COUNTRY_VIETNAM_DIAL = "84";
       /// do not send sms to this list dial
       public static  List<String> BLACKLIST_DIAL = new ArrayList<String>() {{ add(COUNTRY_VIETNAM_DIAL);}};
       public static final String BAHASA_LANGUAGE = "id";
       public final String ENGLISH_LANGUAGE = "en";
       public final String DEFAULT_LANGUAGE = ENGLISH_LANGUAGE; // english

       public final String VIETNAMESE_LANGUAGE = "vi";
       public final String VIETNAMESE_LANGUAGE_CODE = "vi-VN";
       public final String BAHASA_LANGUAGE_CODE = "id-ID";
       public final String CHINESE_LANGUAGE = "zh-Hans";
       public final String CHINESE_LANGUAGE_CODE = "zh-Hans";
       public final String ENGLISH_LANGUAGE_CODE = "en";

       /*//Key & salt for query String encryption
       public static String QUERY_String_SALT = ConfigurationManager.AppSettings["QUERY_String_SALT"];
       public static String QUERY_String_KEY = ConfigurationManager.AppSettings["QUERY_String_KEY"];

       //Rijndael key & salt for public use
       public static String RIJNDAEL_PUB_SALT = ConfigurationManager.AppSettings["RIJNDAEL_PUB_SALT"];
       public static String RIJNDAEL_PUB_KEY = ConfigurationManager.AppSettings["RIJNDAEL_PUB_KEY"];

       //Rijndael key & salt for private use
       public static String RIJNDAEL_PRV_SALT = ConfigurationManager.AppSettings["RIJNDAEL_PRV_SALT"];
       public static String RIJNDAEL_PRV_KEY = ConfigurationManager.AppSettings["RIJNDAEL_PRV_KEY"];

        //aia health shield
        public static String AIA_HEALTHSHIELD_AES_String_KEY = ConfigurationManager.AppSettings["AIA_Health_AES_Serect_Key"];

        //TPA Member
        public static String TPA_CLIENT_ID = ConfigurationManager.AppSettings["TPA_CLIENT_ID"];
        public static String TPA_CLIENT_SECRET = ConfigurationManager.AppSettings["TPA_CLIENT_SECRET"];
        public static String TPA_EXPIRES_UTC = ConfigurationManager.AppSettings["TPA_EXPIRES_UTC"];

        //Socket
        public static String SOCKET_AUTHORIZATION = ConfigurationManager.AppSettings["SOCKET_AUTHORIZATION"];
        public static String SOCKET_URL = ConfigurationManager.AppSettings["SOCKET_URL"];*/


       public static String WHITECOAT_ID = "1dd0fe2c-69e4-4757-9cf3-88fb0cfb6ac4";
       // name of company
       public static String AIA_HEALTHSHIELD = "AIA HealthShield";
       public static String PACKER_CHECKER = "review_packed_medication";
       public static final int MAX_ATTEMPT_OF_RETRY_OTP = 3;

       // Grab Access Token
       public static String Grab_Access_Token = "";



       public static String CURRENT_LANGUAGE = Locale.getDefault().getLanguage();

       /*public class IdValue {
           public int id { get; set; }
           public String value { get; set; }
       }*/

       public static class API_ISSUE_REFRESH_TOKEN
       {
           public static Boolean MEMBER = false;
           public static Boolean DOCTOR = true; //true: Single login only
           public static Boolean DRIVER = false; //true: Single login only
           public static Boolean PHARMACY = false; //true: Single login only
           public static Boolean SWABBER = true; //true: Single login only
       }

       public class API_ROLE_NAME
       {
           public final String ADMIN = "admin";
           public final String MEMBER = "member";
           public final String SWABBER_MEMBER = "swabber_member";
           public final String DOCTOR = "doctor";
           public final String DRIVER = "driver";
           public final String PHARMACY = "pharmacy";
           public final String COMPANY = "company";
           public final String WEB = "web";
           public final String DEV = "dev";
           public final String CLINIC = "clinic";
           public final String TRACKING = "tracking";
           public final String TPA_MEMBER = "tpa_member";
           public final String SINGTEL = "singtel";
           public final String SOCKET = "socket";
           public final String HW_WEBHOOK = "hwwebhook";
           public final String SWABBER = "swabber";
           public final String PAYMENTMETHOD = "paymentmethod";
       }

       //public final String API_MEMBER_ROLE_NAME = "member";
       //public final String API_DOCTOR_ROLE_NAME = "doctor";
       //public final String API_DISPENSARY_ROLE_NAME = "dispensary";

       public static int CMS_PAGE_SIZE = 10;

       public static String CMS_ACTION_VIEW = "1";
       public static String CMS_ACTION_ADD = "2";
       public static String CMS_ACTION_EDIT = "3";
       public static String CMS_ACTION_DEL = "4";

       public enum RijndaelHashAlgorithm
       {
           MD5,
           SHA,
           SHA256,
           SHA512
       };

       public enum RijndaelHashType
       {
           PUBLIC,
           PRIVATE
       };

       public enum RandomValueType
       {
           INT,
           String,
           PASSWORD,
           ALL
       };

       public enum CheckValueType
       {
           FLOAT,
           INT,
           EMAIL
       };

       // - - - White Coat - - -

       public static final String PROJECT_NAME = "WhiteCoat";
       public static final String VERSION = "v1";
       public static final String DELIMITER = ",";
       public static final String AUTHENTICATION_TYPE = "Bearer";

       public static class AUTHENTICATION
       {
           public static String TYPE = "Bearer";
           public static String MEMBER_USER_NAME = "apiMember";
           public static String MEMBER_PASSWORD = "b?WCjrN9ng4";
           public static String DOCTOR_USER_NAME = "apiDoctor";
           public static String DOCTOR_PASSWORD = "N!DDw9DWC0c";
           public static String DRIVER_USER_NAME = "apiDriver";
           public static String DRIVER_PASSWORD = "A!DRi5DVE4r";
           public static String PHARMACY_USER_NAME = "apiPharmacy";
           public static String PHARMACY_PASSWORD = "A!PHa8RMC4Y";
           public static String WEB_USER_NAME = "apiWeb";
           public static String WEB_PASSWORD = "D!TMD17NBt9Y";
       }

       public static class EncryptionKeys
       {
           public static String ADMIN = "2116";
           public static String MEMBER = "1610";
           public static String DOCTOR = "2721";
           public static String DRIVER = "2517";
           public static String PHARMACY = "5197";
           public static String BOOKING = "4916";
           public static String REFILL_MEDICATION_BOOKING = "2917";
           public static String ORDER = "5968";
           public static String SUPPLIER = "3526";
           public static String MEDICATION = "2426";
           public static String CORPORATE_MEMBER_GROUP = "2030";
           public static String CORPORATE_MEMBER_GROUP_MEMBER = "3117";
           public static String PAYMENT_TRANSACTION_ID = "15294010042017";
           public static String QR_CODE = "92191510";
           public static String REF_CODE_OF_QR_CODE_DRIVER = "1705092120";
           public static String REF_CODE_OF_QR_CODE_PHARMACY = "2309201705";
           public static String CARD_NO = "4517";
           public static String SUBSCRIPTION_PACKAGE = "4017";
           public static String SUBSCRIPTION_PACKAGE_MEMBER = "4217";
           public static String COMPANY = "2517";
       }

       public static class EMAIL_TEMPLATE_PATH
       {
           public static String API_ACTIVATE_ACCOUNT = "~/emailTemplate/Account_Activation.txt";
           public static String API_REGISTER_ACCOUNT = "~/emailTemplate/Register_Account.txt";
           public static String API_RECOVERY_PASSWORD = "~/emailTemplate/Account_Recovery.txt";
           public static String API_INVITE_CHILD = "~/emailTemplate/Invite_Child.txt";
           public static String API_EMAIL_MEMO = "~/emailTemplate/Email_Memo.txt";
           public static String API_VERIFY_EMAIL = "~/emailTemplate/VerifyEmailAddress.txt";
           public static String API_MEMO_PDF = "~/emailTemplate/MemoPDF.txt";
           public static String API_PRESCRIPTION_PDF = "~/emailTemplate/PrescriptionPDF.txt";
           public static String API_MEDICAL_SERVICE_PDF = "~/emailTemplate/MedicalServicePDF.txt";
           public static String API_RECEIPT_PDF = "~/emailTemplate/ReceiptPDF.txt";
           public static String API_SWABBER_RECEIPT_PDF = "~/emailTemplate/SwabberReceiptPDF.txt";
           public static String API_REFERRAL_PDF = "~/emailTemplate/ReferralLetterPDF.txt";
           public static String API_SEND_ALL_MEDICAL_DOCUMENTS = "~/emailTemplate/SendAllMedicalDocuments.txt";
           public static String API_SEND_DOCUMENT = "~/emailTemplate/SendDocument.txt";
           public static String API_SEND_FEEDBACK = "~/emailTemplate/Send_Feedback.txt";
           public static String API_EMAIL_REFERRAL = "~/emailTemplate/Email_Referral.txt";
           public static String API_MEDICAL_CERTIFICATE = "~/emailTemplate/MedicalCertificate.txt";
           public static String API_REFERRAL_LETTER = "~/emailTemplate/ReferralLetter.txt";
           public static String API_SEND_PASSWORD = "~/emailTemplate/Send_Password.txt";
           public static String API_SEND_SUPPORT = "~/emailTemplate/Send_Support.txt";
           public static String CMS_SEND_ORDER = "~/emailTemplate/Create_Order.txt";
           public static String CMS_ACCOUNT_LOCK = "~/emailTemplate/Account_Lock.txt";
           public static String CMS_ACCOUNT_LOGIN_FAILED = "~/emailTemplate/Account_Login_Failed.txt";
           public static String CMS_IP_ADDRESS_LOCK = "~/emailTemplate/Blocked_IP_Address.txt";
           public static String API_EMAIL_PROMOTION_CODE = "~/emailTemplate/Promotion_Code.txt";
           public static String API_VERIFY_CONSULT_PROFILE = "~/emailTemplate/VerifyConsultProfile.txt";
           public static String API_DEPENNDANT_ACCEPTED = "~/emailTemplate/Dependant_Accepted.txt";
           public static String API_DEPENNDANT_BEEN_INVITATION = "~/emailTemplate/Dependant_Been_Invitation.txt";
           public static String API_DEPENNDANT_DECLINED = "~/emailTemplate/Dependant_Declined.txt";
           public static String API_DEPENNDANT_INVITATION = "~/emailTemplate/Dependant_Invitation.txt";
           public static String API_SHARING_CHILD_EMAIL_TO_DESIGNATED_REPRESENTATIVE = "~/emailTemplate/Sharing_Child_Email_To_Designated_Representative.txt";
           public static String API_SHARING_CHILD_ACCEPTED = "~/emailTemplate/Sharing_Child_Accepted.txt";
           public static String API_SHARING_CHILD_DECLINED = "~/emailTemplate/Sharing_Child_Declined.txt";
           public static String API_SHARING_CHILD_INVITATION = "~/emailTemplate/Sharing_Child_Invitation.txt";
           public static String API_LABORATORY_RESULT_NOTIFY = "~/emailTemplate/Laboratory_Notify.txt";
           public static String CMS_STAFF_PURCHASE_RECEIPT = "Staff_Purchase_Receipt.txt";
           public static String CMS_VERIFICATION_CODE = "~/emailTemplate/Verification_Code.txt";

           public static String MEDICAL_CERTIFICATE = "MedicalCertificate.txt";
           public static String REFERRAL_PDF = "ReferralLetterPDF.txt";
           public static String MEMO_PFD = "MemoPDF.txt";
           public static String CALL_PATIENT_FOR_APPOINTMENT = "~/emailTemplate/CallPatientForAppointment.txt";
           public static String EMAIL_PENDING_APPOINTMENT = "~/emailTemplate/EmailPendingAppointment.txt";
           public static String INDO_SP_EMAIL_PENDING_APPOINTMENT = "~/emailTemplate/Indo_SP_EmailPendingAppointment.txt";
           public static String EMAIL_DOCTOR_UPCOMING_HOLIDAY = "~/emailTemplate/Email_DoctorUpcomingHoliday.txt";
           public static String EMAIL_PATIENT_CANCEL_APPOINTMENT = "~/emailTemplate/EmailPatientCancelAppointment.txt";
           public static String EMAIL_PENDING_APPOINTMENT_LAPSED = "~/emailTemplate/Email_Pending_Appointment_Lapsed.txt";
           public static String EMAIL_CONFIRMED_APPOINTMENT_LAPSED = "~/emailTemplate/Email_Confirmed_Appointment_Lapsed.txt";
           public static String EMAIL_RESCHEDULED_APPOINTMENT = "~/emailTemplate/Email_Rescheduled_Appointment.txt";

           public static String API_INACTIVATED_ACCOUNT = "~/emailTemplate/Account_InActivation.txt";
           public static String API_HBHS_CONFIRMATION = "~/emailTemplate/HBHS_Confirmation.txt";
           public static String NOTIFICATION_AIA_HAPPINESS_ADD_PROFILE = "~/emailTemplate/Notification_AIA_Happiness_Add_Profile.txt";
           public static String NOTIFICATION_AIA_HAPPINESS_CLAIM_SERVICE = "~/emailTemplate/Notification_AIA_Happiness_Claim_Service.txt";
           public static String API_CDMP_PDF = "~/emailTemplate/CdmpPDF.txt";
           public static String API_TELE_ART_SUBMISSION_PDF = "~/emailTemplate/Tele_ART_Submission.txt";
           public static String API_EMAIL_OPS_FOR_ACCOUNT_DELETION = "~/emailTemplate/Email_OPS_For_Account_Deletion.txt";
           public static String API_EMAIL_PATIENT_SELECT_MEDICATION = "~/emailTemplate/EmailPatientSelectMedication.txt";
           public static String API_EMAIL_PATIENT_CANCEL_MEDICATION = "~/emailTemplate/EmailPatientCancelMedication.txt";
           public static String API_EMAIL_UPLOADED_PROOF_OF_PAYMENT = "~/emailTemplate/EmailPatientUploadedProofOfPayment.txt";
           public static String API_EMAIL_SUBSCRIPTION_UPLOADED_PROOF_OF_PAYMENT = "~/emailTemplate/EmailPatientSubscriptionUploadedProofOfPayment.txt";
           public static String EMAIL_VN_REGISTER_ACCOUNT = "~/emailTemplate/VN_Register_Account.txt";
           public static String API_BRUNEI_EMAIL_TRIGGERED_TO_KARE_CLINIC = "~/emailTemplate/BruneiEmailTriggeredToKareClinic.txt";
           public static String EMAIL_VN_SHARING_CHILD_EMAIL_TO_DESIGNATED_REPRESENTATIVE = "~/emailTemplate/VN_Sharing_Child_Email_To_Designated_Representative.txt";
           public static String EMAIL_VN_SHARING_CHILD_ACCEPTED = "~/emailTemplate/VN_Sharing_Child_Accepted.txt";
           public static String EMAIL_VN_SEND_DOCUMENT = "~/emailTemplate/VN_SendDocument.txt";
           public static String EMAIL_VN_INVITE_CHILD = "~/emailTemplate/VN_Invite_Child.txt";
           public static String EMAIL_VN_SEND_PASSWORD = "~/emailTemplate/VN_Send_Password.txt";
           public static String EMAIL_THINKWELL_CAMPAIGN = "~/emailTemplate/Thinkwell_Campaign.txt";
       }

       public static class S3_Folder
       {
           public static String TEMPS = "Temps";
           public static String ADMIN = "Admins";
           public static String MEMBER = "Members";
           public static String SWABBER_MEMBER = "SwabberMembers";
           public static String PACKED_MEDICATION = "PackedMedications";
           public static String DOCTOR = "Doctors";
           public static String DRIVER = "Drivers";
           public static String PHARMACY = "Pharmacys";
           public static String ADVERTISE = "Advertises";
           public static String CLINIC = "Clinics";
           public static String STYLE = "Styles";
           public static String OTHER = "Others";
           public static String CORPORATE = "Corporates";
           //Add for Medical_Certificate PDF
           public static String MEDICALCERTIFICATE = "Consultation/MedicalCertificate";
           public static String REFERRALLETTER = "Consultation/ReferralLetter";
           public static String RECEIPT = "Consultation/Receipt";
           public static String STAFFPURCHASERECEIPT = "StaffPurchase/Receipt";
           public static String MEMO = "Consultation/Memo";
           public static String COMPANY = "Companies";
           public static String GRAB = "Grabs";
           public static String INTRO = "Introductions";
           public static String LABORATORYRESULT = "LaboratoryResult";
           public static String FULFILL_PRESCRIPTION = "FulfillPrescription";
           public static String LOG_TRANSACTION = "LogTransaction";
           public static String CONSULT_NOTE = "ConsultNotes";
           public static String PRESCRIPTION = "Consultation/Prescription";
           public static String NEWS = "News";
           public static String TAB_TITLE = "Tab_Title";
           public static String ONBOARDING_SCREENS = "OnboardingScreen";
           public static String RINGTONE = "Ringtone";
           public static String MEMBERUPLOADFILE = "Members/UploadFile/{0}";
           public static String SWABBER = "Swabbers";
           public static String PAYMENTMETHOD = "PaymentMethods";
           public static String PUBNUB = "LogPubNub";
           public static String THINKWELL = "ThinkWell";
           public static String THINKWELLV2 = "ThinkWellV2";
           public static String EATWELL = "EatWell";
           public static String FOODRECOGNITION = "FoodRecognition";
       }

       public static class Image_Type
       {
           public static String ADMIN = "admin-profile";
           public static String MEMBER = "member";
           public static String DOCTOR_PROFILE = "doctor_profile";
           public static String DOCTOR_SIGNATURE = "doctor_singnature";
           public static String DRIVER_PROFILE = "driver_profile";
           public static String DRIVER_FRONT_IDENTICATION_CARD = "driver_front_identication_card";
           public static String DRIVER_BACK_IDENTICATION_CARD = "driver_back_identication_card";
           public static String PHARMACY_PROFILE = "pharmacy_profile";
           public static String ADVERTISE = "advertise";
           public static String CLINIC = "clinic";
           public static String COMPANY = "11";
           public static String OTHER = "other";
           public static String NEWS = "news";
           public static String THINKWELL = "thinkwell";
           public static String SELF_CARE_TIPS = "self_care_tips";
           public static String CAMPAIGN = "campaign";
           public static String EATWELL = "eatwell";
           public static String EATWELL_SELF_CARE_TIPS = "eatwell_self_care_tips";
       }

       public static class Image_Size
       {
           public static int NORMAL = 0;
           public static int THUMB_CMS = 1;
       }

       public static class Image_Size_Name
       {
           public static String NORMAL = "";
           public static String THUMB_CMS = "thumb-cms-";
       }

       public static class API_Image_Type
       {
           public static String MEM_PROFILE = "1";
           public static String MEM_FRONT_IDENTICATION_CARD = "1.1";
           public static String MEM_BACK_IDENTICATION_CARD = "1.2";
           public static String MEM_PASSPORT = "1.3";
           public static String MEM_BIRTH_CERTIFICATE = "1.4";
           public static String MEM_FRONT_DRIVING_LICENSE = "1.5";
           public static String MEM_BACK_DRIVING_LICENSE = "1.6";
           public static String MEM_FRONT_GENERAL_CARD = "1.7";
           public static String MEM_BACK_GENERAL_CARD = "1.8";
           public static String MEM_CHILD_PHOTO = "1.9";
           public static String DOCTOR_PROFILE = "2";
           public static String DOCTOR_SIGNATURE = "2.1";
           public static String DRIVER_PROFILE = "5";
           public static String DRIVER_FRONT_IDENTICATION_CARD = "5.1";
           public static String DRIVER_BACK_IDENTICATION_CARD = "5.2";
           public static String PHARMACY_PROFILE = "6";
           public static String ADVERTISE = "7";

           public static String BOOKING_SYMPTOM = "3.1";
           public static String BOOKING_DRIVER_COLLECTED_MEDICINE = "3.2";
           public static String BOOKING_PATIENT_SIGNATURE = "3.3";
           public static String BOOKING_DRIVER_SIGNATURE = "3.4";
           public static String BOOKING_SPECIALIST_REFERRAL_LETTER = "3.5";
           public static String ADMIN_PROFILE = "4";
           public static String TEMPS = "-1";
           public static String MEDICAL_CERTIFICATE = "8";
           public static String REFERRAL_LETTER = "9";
           public static String RRECEIPT = "10";
           public static String MEMO = "12";
           public static String COMPANY_LOGO = "11";
           public static String CLINIC = "clinic";
           public static String PRESCRIPTION = "13";
           public static String NEWS = "14";
           public static String SWABBER_PROFILE = "15";
           public static String SWABBER_SIGNATURE = "15.1";
           public static String SWABBER_BOOKING_SPECIALIST_REFERRAL_LETTER = "16.1";
           public static String THINKWELL = "17";
           public static String THINKWELL_ENCOURAGEMENT = "18";
           public static String SELF_CARE_TIPS = "19";
           public static String THINKWELL_ARTICLE = "20";
           public static String CAMPAIGN = "21";
           public static String EATWELL = "22";
           public static String EATWELL_SELF_CARE_TIPS = "23";
       }

       public static class SignalR_Type
       {
           public static String DOCTOR = CoreAppConstants.PROJECT_NAME + "_doctor";
           public static String DOCTOR_WITHOUT_TOKEN = CoreAppConstants.PROJECT_NAME + "_doctor_without_token";
           public static String CMS = CoreAppConstants.PROJECT_NAME + "_cms";
           public static String API = CoreAppConstants.PROJECT_NAME + "_api";
       }

       public static class SignalR_Action
       {

           public static int DRIVER_INDICATED_PATIENT_INVALID_QR_CODE = -5;
           public static int DRIVER_INDICATED_PATIENT_INVALID_IC = -4;
           public static int DRIVER_INDICATED_PATIENT_NOT_HOME = -3;
           public static int DRIVER_INDICATED_PATIENT_UNCONTACABLE = -2;
           public static int MEMBER_CANCEL_BOOKING = -1;
           public static int MEMBER_CREATE_BOOKING = 1;
           public static int MEMBER_REALY_FOR_CONSULTING = 2;
           public static int MEMBER_RECONECT_TO_DOCTOR = 3;
           public static int MEMBER_PAY_REFLL_MEDICATION = 4;
           public static int ASSIGN_TO_DRIVER = 10;
           public static int MEMBER_REGISTER_DEVICE = 7;
           public static int MEMBER_REGISTER_ACCOUNT = 6;
           public static int MEMBER_PAID_CONSULATION = 5;
           public static int DELIVERY_STATUS_HAS_BEEN_UPDATED = 11;
           public static int DELIVERY_STATUS_HAS_BEEN_UPDATED_ONLY_FOR_PATIENT = 12;
           public static int DOCTOR_VERIFY_PACKED_MEDICATION = 13;
           public static int MEMBER_COMPLETE_CONSULATION = 98;
           public static int DRIVER_COMPLETE_DELIVERY = 99;
           public static int PATIENT_ADD_NOTE_DRIVER = 9;
           public static int ADMIN_RESET_MEDICATION = 14;
           public static int MEMBER_UPLOAD_FILE = 15;
           public static int MEMBER_END_TEXTBASED_BOOKING = 16;
           public static int END_TEXTBASED_BOOKING_LAPSED = 17;
       }

       public static class API_Notification_Type
       {
           //public static int DOCTOR_CANCELED_CONSULTING = -4;
           //public static int DOCTOR_SKIPPED_CONSULTING = -3;
           public static int MEMBER_UNABLE_CONNECT_TO_DOCTOR = -2;
           public static int TIME_CONSULTING_EXPIRED = -1;
           //public static int DOCTOR_STARTED_CONSULTING = 1;
           //public static int DOCTOR_UPDATE_PRESCRIPTION = 2;
           //public static int DOCTOR_END_CALL_CONSULTING = 3;
           //public static int DOCTOR_COMPLETED_CONSULTING = 4;

           public class PATIENT
           {
               public final int DOCTOR_SKIPPED_APPOINTMENT = -11;
               public final int CORPORATE_REMOVED_STATE = -10;
               public final int IC_INVALID = -9;
               public final int QR_CODE_INVALID = -8;
               public final int NOT_HOME = -7;
               public final int DRIVER_UNCONTACTABLE = -6;
               public final int DRIVER_START_UNCONTACTABLE = -5;
               public final int DOCTOR_CANCELED_CONSULTING = -4;
               public final int DOCTOR_DISCONNECTED_CONSULTING = -12;
               public final int DOCTOR_SKIPPED_CONSULTING = -3;
               public final int DOCTOR_STARTED_CONSULTING = 1;
               public final int DOCTOR_UPDATE_PRESCRIPTION = 2;
               public final int DOCTOR_END_CALL_CONSULTING = 3;
               public final int DOCTOR_COMPLETED_CONSULTING = 4;
               public final int DRIVER_CONTACTED = 5;
               public final int DRIVER_MEDICINE_COLLECTED = 6;
               public final int DRIVER_STARTED_DELIVERING = 7;
               public final int DRIVER_HAS_SCANED_QR_CODE = 8;
               public final int DRIVER_HAS_COMPLETED_DELIVER = 9;
               public final int PHARMACY_HAS_SCANED_QR_CODE = 10;
               public final int PHARMACY_HAS_CONFIRMED_IC = 11;
               public final int PHARMACY_HAS_COMPLETED_COLLECTION = 12;
               public final int QUEUE_NO_HAS_BEEN_CHANGED = 13;
               public final int CORPORATE_ACTIVATED_STATE = 14;
               public final int DRIVER_IS_ASSIGNED = 15;
               public final int MEMO_IS_UPDATED = 16;
               public final int NOTIFICATION_3_DAYS_AFTER_CONSULTATION = 17;
               public final int MEMBER_REGISTER_DEPENDANT = 18;
               public final int MEDICAL_CERTIFICATE_IS_UPDATED = 19;
               public final int MEDICAL_LETTER_IS_UPDATED = 20;
               public final int BOOKING_COMPLETED_AND_PUSH_AIA_NOTIFICATION = 21;
               public final int HAS_BEEN_INVITED_TO_BE_DEPENDANT = 22;
               public final int HAS_BEEN_INVITED_TO_SHARE_CHILD = 23;
               public final int LABORATORY_RESULT_NOTIFY = 24;
               public final int FULFILL_PRESCRIPTION = 25;
               public final int MEDICATION_REMINDERS = 26;
               public final int MEDICATION_REMINDER_AFTER_PATIENT_RECEIVE_MEDICATION = 27;
               public final int PAYMENT_REMINDER = 28;
               // WC-1446 + WC-1462: uParcel
               public final int UPARCEL_ACCEPT_JOB = 29;
               public final int UPARCEL_ITEM_PICKED_UP = 30;
               public final int UPARCEL_DELIVERED = 31;
               public final int UPARCEL_FAIL = 32;
               // Grab
               public final int GRAB_PICKUP = 33;
               public final int GRAB_BEING_IN_DELIVERY = 34;
               public final int GRAB_COMPLETED = 35;
               public final int GRAB_RETURNED_FAILED = 36;
               public final int DOCTOR_STARTED_CONSULTING_APPOINTMENT = 37;
               public final int CANCELED_APPOINTMENT = 38;
               public final int LABORATORY_RESULT_NOTIFY_REMINDER = 39;
               public final int DOCTOR_APPROVED_MEDICATIONS = 40;
               public final int INDONESIA_PAYMENT_SUCCESS = 41;
               public final int NEWS_NOTIFICATION = 42;
               public final int UPDATED_APPOINTMENT = 43;
               public final int NOTIFICATION_AIA_HAPPINESS = 44;
               public final int NOTIFICATION_AIA_HAPPINESS_GOC = 45;
               public final int NOTIFICATION_REMAIN_TO_CONFIRM_PAYMENT = 46;

               public final int NOTIFICATION_TRIGGER_FOR_AIA = 47;
               public final int NOTIFICATION_RECOMMEND_APPOINTMENT_REMINDER = 48;
               public final int NOTIFICATION_RECOMMEND_MEDICATION_REMINDER = 49;
               public final int NOTIFICATION_SWABBER_PAYMENT_CONFIRMED = 50;
               public final int NOTIFICATION_SWABBER_APPOINTMENT_CONFIRMED = 51;
               public final int NOTIFICATION_SWABBER_APPOINTMENT_BEFORE3DAYS = 52;
               public final int NOTIFICATION_SWABBER_APPOINTMENT_BEFORE30MINS = 53;

               public final int VIETNAM_NOTIFICATION_MARK_AS_PAID = 54;
               public final int VIETNAM_NOTIFICATION_MARK_AS_DELIVERING = 55;
               public final int DOCTOR_STARTED_CONSULTING_TEXT_BASED_APPOINTMENT = 56;
               public final int NOTIFICATION_TEXTBASED_APPOINTMENT_BEFORE_3_MINUTES = 57;
               public final int NOTIFICATION_LAB_RESULT_REMINDER = 58;
               public final int NOTIFICATION_ACCESSED_THINKWELL = 59;
               public final int NOTIFICATION_THINKWELL_CAMPAIGN = 60;
           }

           public static class DRIVER
           {
               public static int REASSIGN_JOB_TO_DRIVER_OTHER = -1;
               public static int ASSIGN_NEW_JOB = 1;
               public static int PHARMACY_HAS_SCANED_QR_CODE = 2;
               public static int PHARMACY_MARK_IC_VALID = 3;
               public static int PHARMACY_COMPLETE_COLLECTION = 4;
               public static int PHARMACY_HAS_CONFIRMED_IC = 5;
               public static int PHARMACY_HAS_COMPLETED_COLLECTION = 6;
               public static int DELIVERY_HAS_BEEN_CANCELLED = 7;
               public static int PATIENT_UPDATES_NOTE_TO_DRIVER = 8;
           }
       }

       public static class TRIGGER_AIA_TYPE
       {
           public static int NOTI_3MONTHS_BEFORE_POLICY_END_DATE = 1;
           public static int NOTI_ONCE_VISIT_BALANCE_ANNUAL_LIMIT_IS_COMPLETELY_UTILISED = 2;
           public static int NOTI_1H_AFTER_THE_POLICY_IS_RENEWED = 3;
           public static int NOTI_1DAY_AFTER_AIA_GP_PROFILE_IS_ADDED = 4;
           public static int NOTI_3DAYS_AFTER_AIA_PAEDS_PROFILE_IS_ADDED = 5;
           public static int NOTI_1DAY_AFTER_AIA_MW_PROFILE_IS_ADDED = 6;
           public static int NOTI_7DAYS_AFTER_AIA_MW_PATIENT_COMPLETE_CONSULT = 7;
       }

       public static class API_Notification_Type_Message
       {

           public static String MEMBER_CANCEL_BOOKING = "Patient has canceled consultant.";
           public static String MEMBER_UNABLE_CONNECT_TO_DOCTOR = "Sorry, we are unable to connect to your doctor at this moment."; //"Unable to connect to {0}";
           public static String NEWS_CONTENT_FORMAT = "<style>@font-face {{font-family: 'SFUIText-Regular'; src: url('https://s3-ap-southeast-1.amazonaws.com/content.staging.whitecoat.global/PDF/Templates/fonts/SF-UI-Text-Regular.otf');font-style: normal;}} @font-face {{font-family: 'SFUIText-Bold'; src: url('https://s3-ap-southeast-1.amazonaws.com/content.staging.whitecoat.global/PDF/Templates/fonts/SF-UI-Text-Bold.otf');font-style: normal;}}</style><div style='font-family: SFUIText-Regular !important;'>{0}</div>";


           public static class PATIENT
           {
               //public static String DRIVER_HAS_COMPLETED_DELIVER = "Your medication has been delivered. Please contact us immediately if you have not received your medication or if you have any other issues with your medication. Thank you for choosing WhiteCoat as the doctor in your family."; //"Your medication has been delivered!";
               //public static String IC_INVALID = "Sorry, the identification document you have provided is invalid. Please contact WhiteCoat during our office hours for assistance in the completion of this delivery."; //"Driver has indicated your delivery as IC invalid.";
               //public static String QR_CODE_INVALID = "Sorry, the QR code you have provided is invalid. Please contact WhiteCoat during our office hours for assistance in the completion of this delivery."; //"Driver has indicated your delivery as QR code invalid.";
               //public static String NOT_HOME = "Your driver has failed to reach you at your specified delivery address. Please contact WhiteCoat during our office hours to schedule a re-delivery."; //"Driver was unable to deliver your order.";
               //public static String DRIVER_HAS_SCANED_QR_CODE = "Driver has scanned QR code successfully.";
               //public static String DRIVER_IS_ASSIGNED = "Your driver, {0}, has been assigned to pick up your medication. You will receive a notification when it is on its way to you.";
               //public static String DRIVER_STARTED_DELIVERING = "Your driver, {0}, has collected your medication and will deliver it soon. Please have your identification document on standby for verification."; //"Your delivery is on the way.";
               //public static String DRIVER_MEDICINE_COLLECTED = "Driver has collected medicine.";
               //public static String DRIVER_CONTACTED = "Your driver is on his way to collect your medicine now.";//"Driver has indicated your delivery as contacted.";
               //public static String DRIVER_UNCONTACTABLE = "Your driver has failed to reach you at your specified delivery address. Please contact WhiteCoat during our office hours to schedule a re-delivery."; //"Driver cannot contact you.";
               //public static String DRIVER_START_UNCONTACTABLE = "Driver started countdown for uncontactable.";
               //public static String DOCTOR_CANCELED_CONSULTING = "{0} is currently unavailable."; //"Doctor has canceled cons0ultant.";
               //public static String DOCTOR_SKIPPED_CONSULTING = "Sorry, we were unable to reach you. To continue or cancel, please click here."; //"Doctor has skipped consultant.";
               //public static String DOCTOR_STARTED_CONSULTING = "Your doctor is now ready to see you. Click here."; //"Consultant {0} has been started.";
               //public static String DOCTOR_STARTED_CONSULTING_APPOINTMENT = "{0} is calling you for your video consultation scheduled at {1}...";
               //public static String DOCTOR_UPDATE_PRESCRIPTION = "Your prescription has been updated."; //"Doctor has been updated prescription.";
               //public static String DOCTOR_END_CALL_CONSULTING = "Your call has ended. Please hold while your doctor wraps up your consultation."; //"Doctor end call.";
               //public static String DOCTOR_COMPLETED_CONSULTING = "Your doctor has completed a review of your consultation. Any approved medical document(s) you have requested for are accessible now."; //"Consultant {0} has been set to completed.";
               //public static String DOCTOR_COMPLETED_OFFLINE_CONSULTING = "Your offline consultation notes and medical documents (if any), are now available in-app. Tap this notification to view."; //"Consultant {0} has been set to completed.";

               //public static String PHARMACY_HAS_SCANED_QR_CODE = "QR code scan success."; //"Pharmacy has scanned QR code successfully.";
               //public static String PHARMACY_HAS_CONFIRMED_IC = "IC verified."; //"Pharmacy has confirmed IC successfully.";
               //public static String PHARMACY_HAS_COMPLETED_COLLECTION = "Your medicine is packed."; //"Pharmacy has completed collection.";
               ////public static String QUEUE_NO_HAS_BEEN_CHANGED = "Your queue number has been updated.";
               //public static String QUEUE_NO_HAS_BEEN_CHANGED = "Your estimated wait time is about {0} minute(s). Thank you for your patience.";
               ////public static String QUEUE_NO_HAS_BEEN_CHANGED = "Your doctor is now ready to see you. Click here";

               public static String CORPORATE_ACTIVATED_STATE = "Hi, your account is now covered with your company's corporate plan. You may now proceed to consult our doctors with this account."; //"Your corporate account under {0} Company has become activated.";
               public static String CORPORATE_REMOVED_STATE = "Your account has been removed from this corporate plan."; //"Your corporate account under {0} Company has become inactive.";
               //public static String NOTIFICATION_3_DAYS_AFTER_CONSULTATION = "Hi {0}, we hope you are feeling better after your video consult with us. If your condition has not improved, simply tap this notification to video consult one of our doctors today!";
               //public static String NOTIFICATION_3_DAYS_AFTER_CONSULTATION_FOR_CHILD = "Hi {0}, we hope your child, {1}, is feeling better after the video consult with us. If your child’s condition has not improved, simply tap this notification to video consult one of our doctors today!";

               //public static String HAS_BEEN_INVITED_TO_BE_DEPENDANT = "You have been added as a member to {0}’s corporate benefits programme. Tap here to accept this invitation.";
               //public static String HAS_BEEN_INVITED_TO_SHARE_CHILD = "You have been invited to have joint access to {0}’s WhiteCoat account. Tap here to accept this invitation.";

               // public static String LABORATORY_RESULT_NOTIFY = "Your laboratory results are now available in-app. Tap this notification to view.";
               //public static String LABORATORY_RESULT_NOTIFY_REMINDER = "Your laboratory results are available in-app. Would you like to view your results now?";
               //public static String PARTIALLY_FULFILL_PRESCRIPTION = "Your medication prescription relating to Consult No. {0} has been partially fulfilled, tap here to see more.";
               //public static String PURCHASED_PRESCRIPTION = "Your medication prescription relating to Consult No. {0} has been fulfilled, tap here to see more.";

               //public static String NO_QUEUE_CHANGED_AND_PATIENT_GET_READY_FOR_CONSULT = "There is 1 patient in front of you. Please get ready for your consult. Thank you for your patience.";
               //public static String NO_QUEUE_CHANGED_AND_PATIENT_STILL_WAIT_FOR_CONSULT = "There are {0} patients in front of you. Thank you for your patience.";

               //public final String MEDICAION_REMINDER_TAKE_ONE_MEDICAION = "It's time to take your medication now:\n{0} x {1} {2}";
               //public final String MEDICAION_REMINDER_TAKE_MANY_MEDICAIONS = "It's time to take your medications now. Tap here to view your full medications list.";
               //public final String MEDICATION_REMINDER_AFTER_PATIENT_RECEIVE_MEDICATION = "Tap here to set up your medication reminders, and never miss a dose again!";
               //public final String PAYMENT_REMINDER = "A gentle reminder that your consultation has not been completed. Tap here to proceed and access your treatment plan.";

               //// uParcel
               public final String UPARCEL_ACCEPT_JOB = "Your driver has been assigned to pick up your medication. You will receive a notification when it is on its way to you.";
               public final String UPARCEL_ITEM_PICKED_UP = "Your driver has collected your medication and will deliver it soon. Please have your identification document on standby for verification.";
               public final String UPARCEL_DELIVERED = "Your medication has been delivered. Please contact us immediately if you have not received your medication or if you have any other issues with your medication. Thank you for choosing WhiteCoat as the doctor in your family.";
               public final String UPARCEL_FAIL = "Sorry, there seems to be an issue with your delivery. To reschedule, please contact WhiteCoat for further assistance.";

               //// Grab
               public final String GRAB_PICKUP = "Your driver, {0}, has been assigned to pick up your medication. You will receive a notification when it is on its way to you.";
               public final String GRAB_BEING_IN_DELIVERY = "Your driver, {0}, has collected your medication and will deliver it soon. Please have your identification document on standby for verification.";
               public final String GRAB_COMPLETED = "Your medication has been delivered. Please contact us immediately if you have not received your medication or if you have any other issues with your medication. Thank you for choosing WhiteCoat as the doctor in your family.";
               public final String GRAB_RETURNED_FAILED = "Sorry, there seems to be an issue with your delivery. To reschedule, please contact WhiteCoat for further assistance.";

               ////Swabber appointment
               public final String SWABBER_APPOINTMENT_SMS_CONFIRMED = "Hi {0}, your appointment for a Supervised Antigen Rapid Test at {1} is confirmed. Please email us at ART@whitecoat.global if you wish to reschedule or cancel your appointment." +
               "\n\nPlease note that any cancellation / rescheduling must be done at least 1 hour before your appointment to avoid incurring an admin charge of $5.00. No refund will be issued for cancellation made within 1 hour of your appointment.";
               public final String SWABBER_APPOINTMENT_SMS_BEFORE3DAYS = "Hi {0}, you have an appointment for a Supervised Antigen Rapid Test at {1}. Your designated personnel will be available at this time for the appointment. Please remember to be punctual." +
               "\n\nPlease email us at ART@whitecoat.global if you wish to reschedule or cancel your appointment. Please note that any cancellation / rescheduling at this point will incur an admin charge of $5.00. No refund will be issued for cancellation made within 1 hour of your appointment.";
               public final String SWABBER_APPOINTMENT_SMS_BEFORE30MINS = "Hi {0}, you have an appointment for a Supervised Antigen Rapid Test at {1} later today. Your designated personnel will be available at this time for the appointment. Please remember to be punctual." +
               "\n\nPlease log in to your WhiteCoat app at your designated appointment time. The appointment banner on the app home screen will turn green 3 minutes before your appointment. Tap on the banner, and your designated personnel will connect and start the session once ready." +
               "\n\nPlease email us at ART@whitecoat.global if you wish to reschedule or cancel your appointment. Please note that any cancellation / rescheduling at this point will incur an admin charge of $5.00. If you are late for more than 10 minutes / do not show up for your appointment, no refund will be issued.";
               public final String NOTIFICATION_SWABBER_APPOINTMENT_CONFIRMED = "Your Supervised ART appointment has been confirmed.";
               public final String NOTIFICATION_SWABBER_APPOINTMENT_BEFORE3DAYS = "You have an upcoming Supervised ART appointment at {0}. The appointment banner on your app home screen will turn green 3 minutes before your appointment. Tap the banner to start.";
               public final String NOTIFICATION_SWABBER_APPOINTMENT_BEFORE30MINS = "You have an upcoming Supervised ART appointment in 30 mins. The appointment banner on your app home screen will turn green 3 minutes before your appointment. Tap the banner to start.";


               //// Appointment
               //public static String DOCTOR_SKIPPED_APPOINTMENT = "You have missed your appointment scheduled at {0}. You may proceed to book another appointment if you still require a consultation with our doctors."; 
           }

           public static class DRIVER
           {
               public static String REASSIGN_JOB_TO_DRIVER_OTHER = "Sorry, this delivery has assigned to another driver.";
               public static String ASSIGN_NEW_JOB = "New delivery available!!";
               public static String PATIENT_UPDATES_NOTE_TO_DRIVER = "New note added by patient.";
               public static String PHARMACY_HAS_SCANED_QR_CODE = "Pharmacy has scanned QR code successfully.";
               public static String PHARMACY_MARK_IC_VALID = "Pharmacy has indicated your delivery as valid IC.";
               public static String PHARMACY_COMPLETE_COLLECTION = "Pharmacy has completed collection.";
               public static String PHARMACY_HAS_CONFIRMED_IC = "Pharmacy has confirmed IC successfully.";
               public static String PHARMACY_HAS_COMPLETED_COLLECTION = "Pharmacy has completed collection.";
               public static String DELIVERY_HAS_BEEN_CANCELLED = "Delivery cancelled.";
           }
       }

       public static class SCHEDULER_JOB
       {
           public static int CHECK_BOOKING_EXPIRED = -1;
       }

       public static class AmountUnit
       {
           public static String PER_VISIT = "C";
       }

       public static class DOCTYPE_TYPE
       {
           public static String WHITECOAT = "white_coat";
           public static String LOCUMS = "locums";
           public static String CLINICS = "clinics";
       }

       public static class MEMBER_ACCOUNT_TYPE
       {
           public static String INDIVIDUAL = "individual";
           public static String CORPORATE = "corporate";
           public static String SUBSCRIPTION = "subscription";
       }

       public static class CORPORATE_CODE_PAYMENT_TYPE
       {
           public static String CONSULTING_FEES_ONLY = "OPC";
           public static String CONSULTING_FEES_ONLY_WITH_CO_PAID = "OPCWCPPAID";
           public static String CONSULTING_FEES_AND_FEES_MEDICATION_FEES = "APCM";
           public static String CONSULTING_FEES_AND_FEES_MEDICATION_FEES_WITH_CO_PAID = "APCMWCPPAID";
       }

       public static class DELIVERT_TYPE
       {
           public static String SELT_COLLECT = "self_collect";
           public static String DELIVER = "deliver";
           public static String EXPRESS_NAME = "express";
           // ADD START 09/11/2018 WC-54 Add delivery address and delivery time slot for each consult  
           public static String SELF_COLLECT = "1";
           public static String DELIVERY = "2";
           public static String EXPRESS = "3";
           // ADD END 09/11/2018 WC-54 Add delivery address and delivery time slot for each consult  
       }

       public static class SELF_COLLECT
       {
           public static String WHITECOAT = "whitecoat";
           public static String EXTERNAL = "external";
       }

       public static class SEARCH_KEYWORD_HISTORY_GROUP
       {
           public static int BOOKING = 1;
           public static int DOCTOR = 2;
           public static int PATIENT = 3;
           public static int REFILL_MEDICATION = 4;
           public static int PRODUCT = 5;
           public static int SUPPLIES = 6;
           public static int CORPORATE = 7;
           public static int SUBSCRIPTION = 8;
           public static int DRIVER = 7;
       }

       public final String MESSAGE_SMS_SEND_PASSWORD = "Your " + PROJECT_NAME + " one time password is ";
       public final String MOBILE_CODE_SINGAPORE = "+65";
       public final String MESSAGE_SMS_SEND_QR_CODE = "You have been authorised to receive {0}'s WhiteCoat medication package. Click the link below to view the delivery status and the QR code that you will have to present to the driver upon collection. {1}";
       public final double TIME_EXPIRE_ACCESS_TOKEN = 365;

       public final int LENGTH_ACTIVE_CODE = 4;
       public final int LENGTH_ACTIVE_CODE_FOR_EMAIL = 6;
       public final int LENGTH_INVITE_CODE = 4;
       public final int LENGTH_RECOVERY_CODE = 6;
       public final int LENGTH_MEMBER_CODE = 6;
       public final int LENGTH_ORDER_CODE = 5;
       public final int LENGTH_ADMIN_CODE = 6;
       public final int LENGTH_DOCTOR_CODE = 6;
       public final int LENGTH_DRIVER_CODE = 6;
       public final int LENGTH_PHARMACY_CODE = 6;
       public final int LENGTH_CORPORATE_CODE = 6;
       public final int LENGTH_CORPORATE_CODE_MEMBER = 6;
       public final int LENGTH_BOOKING_CODE = 5;
       public final int LENGTH_SUPPLIER_CODE = 6;
       public final int LENGTH_MEDICATION_CODE = 6;
       public final int LENGTH_PAYMENT_TRANSACTION_ID = 6;
       public final int LENGTH_QR_CODE = 6;
       public final int LENGTH_REF_CODE_OF_QR_CODE = 6;
       public final int LENGTH_CARD_NO = 6;
       public final int LENGTH_SUBSCRIPTION_CODE = 6;
       public final int LENGTH_RANDOM_IMAGE_NAME = 5;
       public final int LENGTH_RANDOM_PDF_NAME = 5;
       public final int FULL_LENGTH_CODE = 14;
       public final int LENGTH_COMPANY_CODE = 6;

       public final int MIN_LENGTH_PASSWORD = 6;
       public final int MIN_LENGTH_PASSWORD_MEMBER = 8;
       public final int MAX_LENGTH_PASSWORD = 25;
       public final int MAX_LENGTH_PASSWORD_MEMBER = 50;
       public final int MAX_ITEM_SYSMTOMS_IMAGE = 12;
       public final int MAX_PHOTO_SPECIALIST_REFERRAL_LETTER = 12;
       public final int CACHED_MEDIUM = 36000; // 10 hours
       //public final String ROLE_DISPENSARY = "3eaa37c1-a9c0-464b-9254-819a04b28fd9";
       public final int LENGTH_CMS_VERIFICATION_CODE = 6;

       public static class MEMBER_TYPE_ID
       {
           public static String NRIC_FIN = "nric_fin";
           //public static String NRIC_FIN_BACK = "";
           public static String PASSPORT = "passport";
           public static String BIRTH_CERTIFICATE = "birth_certificate";
           public static String DRIVING_LICENSE = "driving_licence";
           public static String GENERAL = "general";
           public static String CHILD_PHOTO = "child_photo";
       }

       public static class MEMBER_TYPE_ID_IMG_NAME
       {
           //public static String NRIC_FIN = "nric_fin";
           //public static String PASSPORT = "passport";
           //public static String BIRTH_CERTIFICATE = "birth_certificate";
           //public static String DRIVING_LICENSE = "driving_licence";
           //public static String GENERAL = "general";
           public static String CHILD_PHOTO_NAME = "child-photo-";
       }

       public static class MEMBER_TYPE_ID_NUMBER
       {
           public static int NRIC_FIN = 1;
           //public static String NRIC_FIN_BACK = "";
           public static int PASSPORT = 2;
           public static int BIRTH_CERTIFICATE = 3;
           public static int DRIVING_LICENSE = 4;
           public static int CHILD_PHOTO = 5;
       }

       public static class ACTION_UPDATE_CARD_BOOKING
       {
           public static int NORMAL = 1;
           public static int REFILL_MEDICATION = 2;
       }
       public final String MEDICAL_CERTIFICATE_PDF_TEMPLATE = "PDF/Templates";

       public class HTTP_HEADER
       {
           public final String DATE = "Date";
           public final String CONTENT_TYPE_HEADER = "Content-Type";
           public final String AUTHORIZATION = "Authorization";
           public final String CACHE_CONTROL = "Cache-Control";
       }

       public class CONTENT_TYPE
       {
           public final String APPLICATION_JSON = "application/json";
       }

       public class GRAB_EXPRESS_STATUS
       {
           public final String ALLOCATING = "ALLOCATING";
           public final String PICKING_UP = "PICKING_UP";
           public final String IN_DELIVERY = "IN_DELIVERY";
           public final String COMPLETED = "COMPLETED";
           public final String CANCELED = "CANCELED";
           public final String FAILED = "FAILED";
           public final String RETURNED = "RETURNED";
       }

       public class AIA
       {
           public final String SUCCESS_CODE = "001";
           public final String NOT_FOUND_CODE = "002";//#IR-345
           public final String TERMINATED_CODE = "003";//#IR-345
           public final String TERMINATE_CODE = "004";//#WC-3836

           public final String ADD_PROFILE = "ADD PROFILE";
           public final String CHECK_PROFILE = "CHECK PROFILE";
           public final String ADD_GOC_PROFILE = "ADD GOC PROFILE";
           public final String ADD_HS_ASCC_PWCC_TCC_PROFILE = "ADD HS ASCC PWCC TCC PROFILE";
           public final String ADD_LW_PROFILE = "ADD AIA LIVE WELL PROFILE";
           /// <summary>
           /// Reference : GET_LIST_MEMBER_TO_ADD_AIA_PROFILE
           /// </summary>
           public final String CRON_JOB_ADD_PROFILE = "CRON JOB ADD PROFILE";

           /// <summary>
           /// Reference : GET_LIST_MEMBER_TO_ADD_AIA_PROFILE
           /// </summary>
           public final String CRON_JOB_ADD_GOC_PROFILE = "CRON JOB ADD GOC PROFILE";
           public final String CRON_JOB_ADD_REMOVE_HS_ASCC_PWCC_TCC = "CRON JOB ADD REMOVE HS ASCC PWCC TCC";
           public final String CRON_JOB_ADD_LW_PROFILE = "CRON JOB ADD LW PROFILE";
           public final String CRON_JOB_ADD_CI_PROFILE = "CRON JOB ADD CI PROFILE";

           /// <summary>
           /// Reference : GET_LIST_MEMBER_TO_UPDATE_AIA_PROFILE
           /// </summary>
           public final String CRON_JOB_UPDATE_PROFILE = "CRON JOB UPDATE PROFILE";
       }

       public static Map<String, String> frequencies = new HashMap<String, String>() {{
           put("AM & PM", "Morning & Afternoon");
           put("BD", "Twice daily");
           put("EOD", "Every other day");
           put("EON", "Every other night");
           put("EOM", "Every other morning");
           put("FDS", "5 times a day");
           put("OD", "Once daily");
           put("OM", "Once a morning");
           put("ON", "Once a night");
           put("Once", "Once");
           put("QDS", "Four times daily");
           put("Q1hrly", "Every 1 hour");
           put("Q2hrly", "Every 2 hours");
           put("Q4hrly", "Every 4 hours");
           put("Q6hrly", "Every 6 hours");
           put("Q8hrly", "Every 8 hours");
           put("Q12hrly", "Every 12 hours");
           put("TDS", "Three times daily");
           put("1 per week", "1 time per week");
           put("2 times per week", "2 times per week");
           put("3 times per week", "3 times per week");
           put("4 times per week", "4 times per week");
           put("5 times per week", "5 times per week");
           put("6 times per week", "6 times per week");
           put("Once every 2 weeks", "Once every 2 weeks");
       }};

       public static Map<String, String> vn_frequencies = new HashMap<String, String>()
       { {
           put( "AM & PM", "Sáng & Tối" );
           put( "BD", "2 lần/ngày" );
           put( "EOD", "Mỗi ngày khác" );
           put( "EON", "Mỗi tối khác");
           put( "EOM", "Mỗi buổi sáng khác" );
           put( "FDS", "5 lần/ngày" );
           put( "OD", "1 lần/ngày" );
           put( "OM", "1 lần/sáng" );
           put( "ON", "1 lần/tối" );
           put( "Once", "1 lần" );
           put( "QDS", "4 lần/ngày" );
           put( "Q1hrly", "Mỗi 1 giờ" );
           put( "Q2hrly", "Mỗi 2 giờ" );
           put( "Q4hrly", "Mỗi 4 giờ" );
           put( "Q6hrly", "Mỗi 6 giờ" );
           put( "Q8hrly", "Mỗi 8 giờ" );
           put( "Q12hrly", "Mỗi 12 giờ" );
           put( "TDS", "3 lần/ngày" );
           put( "1 per week", "1 lần/tuần" );
           put( "2 times per week", "2 lần/tuần" );
           put( "3 times per week", "3 lần/tuần" );
           put( "4 times per week", "4 lần/tuần" );
           put( "5 times per week", "5 lần/tuần" );
           put( "6 times per week", "6 lần/tuần" );
           put( "Once every 2 weeks", "2 tuần một lần" );
        }
       };

    public static Map<String, String> month_list = new HashMap<String, String>() {{
        put("Jan", "Tháng 1");
        put("Feb", "Tháng 2");
        put("Mar", "Tháng 3");
        put("Apr", "Tháng 4");
        put("May", "Tháng 5");
        put("Jun", "Tháng 6");
        put("Jul", "Tháng 7");
        put("Aug", "Tháng 8");
        put("Sep", "Tháng 9");
        put("Oct", "Tháng 10");
        put("Nov", "Tháng 11");
        put("Dec", "Tháng 12");
    }};

       public class CorporateProfile
       {
           // if amount equal these, hide amount in patient app
           public final float MAXIMUM_AMOUNT = 999;
           public final float MINIMUM_AMOUNT = 0;
           public final float MAXIMUM_AMOUNT_SUBSCRIPTION = 9999999;
       }

       /*public static final List<IdValue> MedicationDurationUnit = new java.util.List<IdValue>
       {
           new IdValue { id = (int)Enums.MedicationDurationUnit.DAY, value = "Day"},
           new IdValue { id = (int)Enums.MedicationDurationUnit.WEEK, value = "Week"},
           new IdValue { id = (int)Enums.MedicationDurationUnit.MONTH, value = "Month"},
           new IdValue { id = (int)Enums.MedicationDurationUnit.YEAR, value = "Year"}
       };*/


       public class UPARCEL_EXPRESS_STATUS
       {
           public final String ALLOCATING = "Allocating";
           public final String ACCEPT_JOB = "accept_job";
           public final String ITEM_PICKED_UP = "item_picked_up";
           public final String DELIVERED = "delivered";
           public final String CUSTOMER_CANCELLED = "customer_cancelled";
           public final String AGENT_CANCELLED = "agent_cancelled";
           public final String ADMIN_CANCELLED = "admin_cancelled";
           public final String UNDELIVERED = "undelivered";
       }

       public static final List<String> generalPractitioneBenCode = new ArrayList<String>() {{ add("C2G"); add("C2F"); add("C2J"); add("C2Y"); }};
       public static final List<String> mentalWellnessBenCode = new ArrayList<String>() {{ add("C3R"); add("C3S"); add("C7Y");add("C3Y"); add("C1S");}};
       public static final List<String> paediatricianBenCode = new ArrayList<String>() {{ add("C3T"); add("C3U"); add("C3V");add("C3Z"); }};

       /// <summary>
       /// Urology - Gastroenterology - Cardiology
       /// Orthopaedics - Dermatology - Ophthalmology
       /// </summary>
       public static final List<String> SPsBenCode = Arrays.asList("C3T", "C3U", "C3V", "C3Z");

       public static final List<String> SetValueBenCode = Arrays.asList( "C2Y");

       public static final List<String> textbasedBenCode = Arrays.asList("C2G","C2J","C2F");

       public static final List<String> AIAHappinessGeneralPractitioneBenCode = Arrays.asList( "C2F");
       public static final List<String> AIAHappinesMentalWellnessBenCode = Arrays.asList( "C3S" );
       public static final List<String> AIAHealthScreeningBenCode = Arrays.asList("EHS" );
       //public static final List<String> AIAHappinesPaediatricianBenCode = new List<String>();

       public static final List<String> AIAAsccPlanCode = Arrays.asList( "CEH", "CEI", "CEJ" );
       public static final List<String> AIAHealthShieldPlanCode = Arrays.asList( "SH1", "SH2", "SHE" );

       /// <summary>
       /// WC-5578 - Data mapping changes
       /// </summary>
       public static final List<String> AIAUnlimitedBenCode = Arrays.asList( "C3R", "C2J", "C3T" );

       //#WC-3350 start
       //feat: Benefit Profiles to allow Single Sign On / passthrough - impact: login, sign up
       //public static final List<String> AIAPWCCCompCode = Arrays.asList( "CNEF", "CNEG" }; //IR-508
       public static final List<String> AIAPWCCPlanCode = Arrays.asList( "CEF", "CEG" );
       //public static final List<String> AIATCCompCode = Arrays.asList( "CNTC", "CNTD" }; //IR-508
       public static final List<String> AIATCCPlanCode = Arrays.asList( "CEC", "CED" );
       //#WC-3350 end
       public static final List<String> AIALWGeneralPractitioneBenCode = Arrays.asList( "C2F" );
       //#WC-4923
       //public static final List<String> AIAMum2BabyPlanCode = Arrays.asList( "W2H", "CEC" };

       public static final List<String> AIAMum2BabyPlanCode = Arrays.asList(
           "W2A","W2B","W2C","W2D","W2E","W2F","W2G","W2H","W2I","RF1","RF2","WYA","WYB","WYC","WYD",
               "WYE","WYF","WYG","WYH","WYI","WTA","WTB","WTC","WTD","WTE","WTF","WTG","WTH","WTI","WTJ",
               "WTK","WTL","WQA","WQB","WQC","WQD","WQE","WQF","WQG","WQH","WQI","WQJ","WQK","WQL","WVA",
               "WVB","WVC","WVD","WVE","WVF","WVG","WVH","WVI","WZA","WZB","WZC","WZD","WZE","WZF","WZG",
               "WZH","WZI","WPM","WPN","WPO","WPT","WPU","WPV","RFY","RFZ"
       );
       public static final List<String> AIAMum2BabyCompCode = Arrays.asList( "GGCB","SHMA" );

       public static final List<String> AIACenturionPAPlanCode = Arrays.asList("PCL");
       public static final List<String> AIACenturionPACompCode = Arrays.asList( "PCAC");
       public static final List<String> AIACIGeneralPractitioneBenCode = Arrays.asList( "C2F" );

       public static final List<String> UltimateCriticalCoverPlanCode = Arrays.asList( "CEM", "CEK", "CEO");
       public static final List<String> UltimateCriticalCoverCompCode = Arrays.asList( "PCAC", "CNAK", "CNAO");

       public final String GeneralPractitioner = "General Practitioner";
       public final String MentalWellness = "Mental Wellness";
       public final String Paediatrician = "Paediatrician";

       /// <summary>
       /// WC-5104
       /// only D, P, B Countunit can be added.
       /// </summary>
       public static final List<String> AIAListCountunit = Arrays.asList( "D", "P", "B");

class Documents
       {
           public final String OriginalReceipt = "OriginalReceipt";
           public final String ReactivatedReceipt = "ReactivatedReceipt";
           public final String ConsolidatedReceipt = "ConsolidatedReceipt";
           public class Target
           {
               public final String PatientApp = "APP";
               public final String CMS = "CMS";
           }
           public class TargetSection
           {
               public final String Consultation = "Consultation";
               public final String Prescription = "Prescription";
           }
       }

       enum MasterDataType
       {
           All,
           Diagnosis,
           CompanySpecialisation,
           MasterCompanyName,
           Symptoms,
           FlagPatients,
           DurationUnit,
           SpecialisationType,
           MedicationReactions,
           MedicationUusagePeriods,
           TextBase
       }

       class CompanyWhiteCoat
       {
           public static final String CompanyID = "1DD0FE2C-69E4-4757-9CF3-88FB0CFB6AC4";
       }
       class SingPassCoreAppConstants
       {
           public final String SANDBOX = "SANDBOX";
           public final String TEST = "TEST";
           public final String PROD = "PRODUCTION";

           public final String APP_ID = "app_id";
           public final String CLIENT_ID = "client_id";
           public final String CLIENT_SECRET = "client_secret";
           public final String CODE = "code";
           public final String GRANT_TYPE = "grant_type";
           public final String NONCE = "nonce";
           public final String REDIRECT_URI = "redirect_uri";
           public final String SIGNATURE_METHOD = "signature_method";
           public final String TIMESTAMP = "timestamp";
           public final String STATE = "state";
           public final String ATTRIBUTE = "attributes";
           public final String TRANSACTION_NO = "txnNo";
           public final String RS256 = "RS256";
           public final String SCOPE = "scope";
           public final String OPENID = "openid";
           public final String RESPONSE_TYPE = "response_type";
           public final String CODE_CHALLENGE = "code_challenge";
           public final String CODE_CHALLENGE_METHOD = "code_challenge_method";
           public final String CODE_VERIFIER = "code_verifier";
           public final String CLIENT_ASSERTION = "client_assertion";
           public final String CLIENT_ASSERTION_TYPE = "client_assertion_type";
           public final String PURPOSE_ID = "purpose_id";

           public final String AUTHORIZATION_CODE = "authorization_code";
           public final String AUTHORIZATION = "Authorization";
           public final String ACCESS_TOKEN = "access_token";
           public final String POST_METHOD = "POST";
           public final String GET_METHOD = "GET";
           public final String NO_CACHE = "no-cache";
           public final String CACHE_CONTROL = "Cache-Control";
           public final String CONTENT_TYPE = "Content-Type";
           public final String DPOP = "DPoP";

           public final String SIGNATURE = "signature";
           public final String PKI_SIGN = "PKI_SIGN";
           public final String BEARER = "Bearer";
           public final String YES = "Y";
           public final String NO = "N";
       }
       class BiometricTemplate
       {
           public final String CompanyName = "Company Name";
           public final String AIAVitalityNo = "AIA Vitality No.";
           public final String SN = "SN";
           public final String Name = "Name";
           public final String NricNo = "Nric No.";
           public final String Gender = "Gender";
           public final String Dob = "Dob";
           public final String Age = "Age";
           public final String DateofScreening = "Date of Screening";
           public final String Dept = "Dept";
           public final String ContactNo = "Contact No";
           public final String Email = "Email";
           public final String Consent = "Consent";
           public final String Smoker = "Smoker";
           public final String LabNo = "Lab_NO";
       }

       class LTRIA
       {
           public final String SUCCESS_CODE = "200";
           public final String ADD_PROFILE = "ADD PROFILE";
           public final String CHECK_PROFILE = "CHECK PROFILE";
           /// <summary>
           /// Reference : GET_LIST_MEMBER_TO_ADD_LTRIA_PROFILE
           /// </summary>
           public final String CRON_JOB_ADD_PROFILE = "CRON JOB ADD PROFILE";
           /// <summary>
           /// Reference : GET_LIST_MEMBER_TO_UPDATE_LTRIA_PROFILE
           /// </summary>
           public final String CRON_JOB_UPDATE_PROFILE = "CRON JOB UPDATE PROFILE";
       }

       class Payment_code
       {
           public final String bcatransfer = "bcatransfer";
           public final String bcava = "bcava";
           public final String permatava = "permatava";
       }

       enum LoginType
       {
           WhiteCoat(1),
           TPA(2);

           private final int value;

           private LoginType(int value) {
               this.value = value;
           }

           public int getValue() {
               return value;
           }
       }

       enum LoginAction
       {
           Select(1),
           Insert(2),
           Update(3),
           Delete(4);

           private final int value;

           private LoginAction(int value) {
               this.value = value;
           }

           public int getValue() {
               return value;
           }

       }

       enum ActionDb
       {
           Select(0),
           Insert(1),
           Update(2),
           Delete(3);

           private final int value;

           private ActionDb(int value) {
               this.value = value;
           }

           public int getValue() {
               return value;
           }
       }

       enum PlatformType
       {
           Video(0),
           Textbased(1);

           private final int value;

           private PlatformType(int value) {
               this.value = value;
           }

           public int getValue() {
               return value;
           }
       }

        enum AppReviewType {
           Rating(1),
           Feedback(2);

           private final int value;

           private AppReviewType(int value) {
               this.value = value;
           }

           public int getValue() {
               return value;
           }
       }

       class RequestOTPType
       {
           public final String ACTIVATE_ACCOUNT = "activate_account";
           public final String UPDATE_MOBILE_NO = "update_mobile_no";
           public final String ACTIVATE_PINCODE = "activate_pincode";
           public final String ACTIVATE_PINCODE_VIA_SMS = "activate_pincode_via_sms";
       }

    public enum ProposedConsultationType
       {
           LabResult(1),
           MedicationRefill(2),
           NextAppointment(3);

           private final int value;

           private ProposedConsultationType(int value) {
               this.value = value;
           }

           public int getValue() {
               return value;
           }
       }

       class ThinkwellRecommendedCategory
       {
           public final String General = "General";
           public final String Anxiety = "Anxiety";
           public final String Depression = "Depression";
       }


}
